package org.example.oop;

/**
 * 由abstract关键字描述的类为抽象类，
 * - 抽象类中可以包含零个或多个抽象方法
 * - 不能直接构建抽象类的对象
 *
 */
public abstract class Animal {
    String name;
    int age;
    String color;
    Animal(){}
    Animal(String name,int age,String color){
        this.name=name;
        this.age=age;
        this.color=color;
    }
    void doDrink(){
        System.out.println(color+"色的"+age+"岁的"+name+"正在喝水...");
    }
    /**
     * 由abstract关键字描述的方法为抽象方法，这样的方法没有具体实现{}
     * 当派生类中的方法声明相同，但是实现不同时，可以在父类中将这个方法声明为抽象方法。
     */
    abstract void doEat();

}
